<!DOCTYPE html>
<html lang="en">
<head>
  <title>Crypto C14 一站式区块链应用</title>
  <meta charset="utf-8">
  <meta name="description" content="一站式区块链应用">
  <meta name="keywords" content="blockchain, crypto evidence, digital evidence, DAPP, anti-counterfeiting, traceability, NFT, reward points">
  <meta name="author" content="wechat ID: fengyun_houston">
  <meta name="wallet" content="ARDOR-49CE-CXZZ-3QHW-AH4JK">
  <meta name="integrity" content="token...">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel = "icon" href ="images/logo-cc14.png" type = "image/x-icon">
  <link rel="stylesheet" href="css/bootstrap.min.css">
  <link rel="stylesheet" href="css/style-cc14.css">
  <style>
  @media all and (min-width: 992px) {
	  .navbar .nav-item .dropdown-menu{ display: none; }
    .navbar .nav-item:hover .nav-link{ color: #000;  }
	  .navbar .nav-item:hover .dropdown-menu{ display: block; }
	  .navbar .nav-item .dropdown-menu{ margin-top:0; }
  }
</style>
</head>
<body>
  <div style="min-height: calc(100vh - 50px);">
    <nav class="navbar sticky-top navbar-expand-lg navbar-light bg-light shadow" id="navbar">
      <div class="container-fluid">
        <a class="navbar-brand" href="home.html"><img src="images/logo-cc14.png" width="74" height="44" loading="lazy"></a>
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarSupportedContent">
          <!-- load by src='js/nav_footer.js' -->
        </div>
      </div>
    </nav>
    <div class="container-fluid"><!-- container ============================ -->

      <div class="row align-items-center"><!-- image slider ================ -->
        <div class="col-12 col-sm-10 mx-auto mt-4" >
          <div  class="carousel slide carousel-dark" data-bs-ride="carousel" id="productImages">
            <ol class="carousel-indicators">
              <li data-target="#productImages" data-slide-to="0" class="active"></li>
              <li data-target="#productImages" data-slide-to="1"></li>
              <li data-target="#productImages" data-slide-to="2"></li>
            </ol>
            <div class="carousel-inner">
              <div class="carousel-item active"><a href="shop.html">
                <img class="d-block mx-auto w-100" id="slideshow-1" src="images/upc-image-1.png" alt=""></a>
              </div>
              <div class="carousel-item"><a href="shop.html">
                <img class="d-block mx-auto w-100" id="slideshow-2" src="images/upc-image-2.png" alt=""></a>
              </div>
              <div class="carousel-item"><a href="shop.html">
                <img class="d-block mx-auto w-100" id="slideshow-3" src="images/upc-image-3.png" alt=""></a>
              </div>
            </div>
            <a class="carousel-control-prev" href="#productImages" role="button" data-bs-slide="prev">
              <span class="carousel-control-prev-icon bg-dark rounded-circle p-3"></span>
            </a>
            <a class="carousel-control-next" href="#productImages" role="button" data-bs-slide="next">
              <span class="carousel-control-next-icon bg-dark rounded-circle p-3"></span>
            </a>
          </div>
        </div>
      </div><!-- image slider end ===========================================-->


      <div class="row"><!-- action block ====================================-->
        <div class="col-12 col-sm-10 mx-auto">
          <div class="accordion">

            <div class="accordion-item" name="Crypto Evidence">
              <h2 class="accordion-header" id="genFileTokenFlip">
                <button id="fileTokenBtn" class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#genFileTokenPanel" aria-expanded="false" aria-controls="genFileTokenPanel">
                  <h4>&#x1F42C; Crypto Evidence</h4>
                </button>
              </h2>
              <div id="genFileTokenPanel" class="accordion-collapse collapse " aria-labelledby="genFileTokenFlip" >
                <div class="accordion-body">
                  <div id="genFileTokenAction">
                    <form id="genFileTokenForm" enctype="multipart/form-data"  onsubmit="return genFileTokenFn(this,['file'])">
                        <input type='hidden' name='requestType' value='generateFileToken'/>
                        <div class="input-group mb-3">
                          <!-- <span class="input-group-text" >Upload file</span> -->
                          <input type="file" class="form-control" name="file" id="genFileTokenFormFile" />
                        </div>
                        <div class="input-group mb-3" >
                          <span class="input-group-text" >Passphrase</span>
                          <input class="form-control" type='password' name='secretPhrase' id="genFileTokenFormPassword" value='ci di wu yin san bai liang ge bi wang er bu ceng tou'>
                          <span class="input-group-text fs-4"  id="genFileTokenFormPasswordIcon" onclick="togglePasswordFn('genFileTokenFormPassword')">&#128584;</span>
                        </div>
                        <div class="input-group justify-content-end mb-3" >
                          <input type='submit' class='btn btn-outline-secondary' value='Generate fileToken'/>
                      </div>
                    </form>
                  </div><!-- form section end ============================== -->
                  <div class="col-12 col-sm-12 d-none" id="genFileTokenDisplay">
                    <div class="text-wrap text-break overflow-auto">
                      <h5>Summary:</h5>
                      <span id="genFileTokenResult"></span>
                      <p><b>Save file to: </b>by local storage, cloud storage, Ardor cloud, IPFS ... </p>
                      <sp><b>Save filtToken to: </b>print out a hardcopy, download and save as a <a id="save2txt" href="" download="date.txt" >txt file </a> ...</p>
                    </div>
                  </div><!-- display result JSON end ======================= -->
                </div><!-- accordion-body end ============================== -->
              </div><!-- accordion-collapse end ============================ -->
            </div><!-- accordion-item end ================================== -->

            <div class="accordion-item">
              <h2 class="accordion-header" id="decFileTokenFlip">
                <button id="evidenceToolsBtn" class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#decFileTokenPanel" aria-expanded="false" aria-controls="decFileTokenPanel">
                  <h4>&#x1F419; Validate file token</h4>
                </button>
              </h2>
              <div id="decFileTokenPanel" class="accordion-collapse collapse " aria-labelledby="decFileTokenFlip" >
                <div class="accordion-body">
                  <div id="decFileTokenAction">
                    <form id="decFileTokenForm" enctype="multipart/form-data" onsubmit="return decodeFileTokenFn(this,['file'])">
                        <input type='hidden' name='requestType' value='decodeFileToken'/>
                        <div class="input-group mb-3">
                          <!-- <span class="input-group-text" >求证文件</span> -->
                          <input type="file" class="form-control" name="file" id="decFileTokenFormFile" />
                        </div>
                        <div class="input-group mb-3" >
                          <span class="input-group-text" >File token</span>
                          <textarea class="form-control" style="height:60px" name='token' id="decFileTokenFormToken" placeholder="fileToken..."></textarea>
                        </div>
                        <div class="input-group justify-content-end mb-3" >
                          <input type='submit' class='btn btn-outline-secondary' value='Valide file token'/>
                      </div>
                    </form>
                  </div><!-- form section end ============================== -->
                  <div class="col-12 col-sm-12 d-none" id="decFileTokenResponse">
                    <div class="text-wrap text-break overflow-auto">
                      <h5>Summary:</h5>
                      <span id="decFileTokenResult"></span>
                      <table class="table table-sm text-nowrap fs-6 table-bordered border-info caption-top">
                        <tbody>
                          <tr><td>by accountRS</td><td id="decFileTokenTbl-generator"></td></tr>
                          <tr><td>time</td><td id="decFileTokenTbl-time"></td></tr>
                          <tr><td>file to validate</td><td id="decFileTokenTbl-file"></td></tr>
                        </tbody>
                      </table>
                    </div>
                  </div><!-- display result JSON end ======================= -->
                </div><!-- accordion-body end ============================== -->
              </div><!-- accordion-collapse end ============================ -->
            </div><!-- accordion-item end ================================== -->


            <div class="accordion-item">
              <h2 class="accordion-header" id="tokenizeFlip">
                <button id="tokenizeBtn" class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#tokenizePanel" aria-expanded="false" aria-controls="tokenizePanel">
                  <h4>&#x1F433; Tokenize file token (NFT)</h4>
                </button>
              </h2>
              <div id="tokenizePanel" class="accordion-collapse collapse " aria-labelledby="tokenizeFlip" >
                <div class="accordion-body">
                  <div class="col-12 col-sm-12 mb-3">
                    <form id="tokenizeForm">
                      <div class="input-group mb-3">
                        <span class="input-group-text" >Name of NFT</span>
                        <input class="form-control" type='text' name='name' value="NFT" >
                      </div>
                      <div class="input-group mb-3">
                        <span class="input-group-text" >File token</span>
                        <textarea class="form-control" style="height:90px" name='description' id='tokenizeFormDescription' placeholder="autocomplete by DApp..."></textarea>
                      </div>
                      <div class="input-group mb-3">
                        <span class="input-group-text" >File detail</span>
                        <input type="text" class="form-control" name='message' id='tokenizeFormMessage' placeholder="autocomplete by DApp...">
                      </div>
                      <div class="input-group mb-3">
                        <span class="input-group-text" >Licenses</span>
                        <!-- <input type="text" class="form-control" name='license' list="liceseList"> -->
                        <select class="form-select" type="text" name='license' id="liceseList">
                          <option selected>Option ...</option>
                          <option value="BSD">BSD</option>
                          <option value="MIT">MIT</option>
                          <option value="GPL">GPL</option>
                        </select>
                      </div>
                      <div class="input-group mb-3" >
                        <span class="input-group-text" >Passphrase</span>
                        <input class="form-control" type='password' name='secretPhrase' id="tokenizeFormPassword" value='ci di wu yin san bai liang ge bi wang er bu ceng tou'>
                        <span class="input-group-text fs-4"  id="tokenizeFormPasswordIcon" onclick="togglePasswordFn('tokenizeFormPassword')">&#128584;</span>
                      </div>
                      <div class="input-group justify-content-end mb-3" >
                        <input type='submit' class='btn btn-outline-secondary' value='prepare transactionBytes' />
                      </div>
                    </form>
                    <form id="tokenizeBroadcastTransactionForm" onsubmit="return broadcastTransactionFn('tokenize')">
                      <input type="hidden" class="form-control" name="transactionBytes" value="" id="tokenizeBroadcastTransactionBytes">
                      <input type="submit" id="tokenizeBroadcastBtn" disabled class="btn btn-success btn-lg" style="width:100%" value="&#x2714; Confirm tokenize" data-bs-toggle="tooltip" data-bs-placement="top" title="演示版中此项功能被禁止，以避免不必要的演示账户火链币消耗。">
                    </form>
                  </div><!-- form section end ============================== -->
                  <div class="col-12 col-sm-12 d-none" id="tokenizeDisplay">
                    <div class="text-wrap text-break overflow-auto">
                      <h4>Summary:</h4>
                      <span id="tokenizeResult"></span>
                      <span id="tokenizeBroadcastTransactionResult"></span>
                      <table class="table table-sm text-nowrap fs-6 table-bordered border-info caption-top">
                        <caption>Tokenize detail</caption>
                        <tbody>
                          <tr><td>Packer</td><td id="tokenizeTblAccountRS"></td></tr>
                          <tr><td>Time</td><td id="tokenizeTblTime"></td></tr>
                          <tr><td>AssetID</td><td id="tokenizeTblAssetID"></td></tr>
                          <tr><td>Fee</td><td id="tokenizeTblFee"></td></tr>
                          <tr><td>FullHash</td><td id="tokenizeTblFullHash"></td></tr>
                          <tr><td>FielToken</td><td id="tokenizeTblFielToken"></td></tr>
                          <tr><td>File information</td><td id="tokenizeTblFile"></td></tr>
                        </tbody>
                      </table>
                    </div>
                    <div class="text-wrap text-break overflow-auto">
                      <hr style="color:red;border-top: 1px solid blue">
                      <span id="tokenizeBroadcastResult" style="text-shadow: 3px 3px 6px #999; font-weight: bold;"></span>
                    </div>
                  </div><!-- display result JSON end ======================= -->
                </div><!-- accordion-body end ============================== -->
              </div><!-- accordion-collapse end ============================ -->
            </div><!-- accordion-item end ================================== -->

            <div class="accordion-item" name="Generate message token">
              <h2 class="accordion-header" id="tokenFlip">
                <button id="tokenBtn" class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#tokenPanel" aria-expanded="false" aria-controls="tokenPanel">
                  <h4>&#x1F423; Generate message token</h4>
                </button>
              </h2>
              <div id="tokenPanel" class="accordion-collapse collapse " aria-labelledby="tokenFlip" >
                <div class="accordion-body">
                  <div class="col-12 col-sm-12 mb-3">
                    <form id="genTokenForm">
                        <input type='hidden' name='requestType' value='generateToken'/>
                        <div class="input-group mb-3">
                          <span class="input-group-text" >Message</span>
                          <textarea name="website" class="form-control" onclick="this.select();" id="genTokenInput">random text ...</textarea>
                        </div>
                        <div class="input-group mb-3" >
                          <span class="input-group-text" >Passphrase</span>
                          <input class="form-control" type='password' name='secretPhrase' id="genTokenFormPassword" value='ci di wu yin san bai liang ge bi wang er bu ceng tou'>
                          <span class="input-group-text fs-4"  id="genTokenFormPasswordIcon" onclick="togglePasswordFn('genTokenFormPassword')">&#128584;</span>
                        </div>
                        <div class="input-group justify-content-end mb-3" >
                          <input type='submit' class='btn btn-outline-secondary' value='Generate token'/>
                      </div>
                    </form>
                  </div><!-- form section end ============================== -->
                  <div class="col-12 col-sm-12 d-none" id="genTokenDisplay">
                    <div class="text-wrap text-break overflow-auto">
                      <hr style="color:red;border-top: 1px solid blue">
                      <h5>Summary:</h5>
                      <span id="genTokenResult"></span>
                    </div>
                  </div><!-- display result JSON end ======================= -->
                </div><!-- accordion-body end ============================== -->
              </div><!-- accordion-collapse end ============================ -->
            </div><!-- accordion-item end ================================== -->

            <div class="accordion-item" name="Validate message token">
              <h2 class="accordion-header" id="decTokenFlip">
                <button id="tokenBtn" class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#decTokenPanel" aria-expanded="false" aria-controls="decTokenPanel">
                  <h4>&#x1F424; Validate message token</h4>
                </button>
              </h2>
              <div id="decTokenPanel" class="accordion-collapse collapse " aria-labelledby="decTokenFlip" >
                <div class="accordion-body">
                  <div class="col-12 col-sm-12 mb-3">
                    <form id="decTokenForm">
                        <input type='hidden' name='requestType' value='decodeToken'/>
                        <div class="input-group mb-3">
                          <span class="input-group-text" >Message</span>
                          <textarea name="website" class="form-control" id="decTokenFormWebsite"></textarea>
                        </div>
                        <div class="input-group mb-3" >
                          <span class="input-group-text" >Message token</span>
                          <textarea class="form-control" name='token' id="decTokenFormToken" ></textarea>
                        </div>
                        <div class="input-group justify-content-end mb-3" >
                          <input type='submit' class='btn btn-outline-secondary' value='Validate message token'/>
                      </div>
                    </form>
                  </div><!-- form section end ============================== -->
                  <div class="col-12 col-sm-12 d-none" id="decTokenDisplay">
                    <div class="text-wrap text-break overflow-auto">
                      <hr style="color:red;border-top: 1px solid blue">
                      <h5>Summary:</h5>
                      <span id="decTokenResult"></span>
                    </div>
                  </div><!-- display result JSON end ======================= -->
                </div><!-- accordion-body end ============================== -->
              </div><!-- accordion-collapse end ============================ -->
            </div><!-- accordion-item end ================================== -->

            <div class="accordion-item">
              <h2 class="accordion-header" id="evidenceJSONFlip">
                <button id="evidenceJSONBtn" class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#evidenceJSONPanel" aria-expanded="false" aria-controls="evidenceJSONPanel">
                  <h4>&#128279; JSON responses</h4>
                </button>
              </h2>
              <div id="evidenceJSONPanel" class="accordion-collapse collapse " aria-labelledby="evidenceJSONFlip" >
                <div class="accordion-body">
                  <div class="col-12 col-sm-12 " id="evidenceJSONDisplay">
                    <div class="text-wrap text-break overflow-auto">
                      <h5>Crypto evidence</h5>
                      <span id="genFileTokenJSON"></span>
                    </div>
                    <div class="text-wrap text-break overflow-auto">
                      <h5>Validate evidence</h5>
                      <span id="decFileTokenJSON"></span>
                    </div>
                    <div class="text-wrap text-break overflow-auto">
                      <h5>Tokenize evidence</h5>
                      <span id="tokenizeJSON"></span>
                    </div>
                    <div class="text-wrap text-break overflow-auto">
                      <h5>Confirm tokenize</h5>
                      <span id="tokenizeBroadcastTransactionJSON"></span>
                    </div>
                    <div class="text-wrap text-break overflow-auto">
                      <h5>Message token</h5>
                      <span id="genTokenJSON"></span>
                    </div>
                    <div class="text-wrap text-break overflow-auto">
                      <h5>Validate message</h5>
                      <span id="decTokenJSON"></span>
                    </div>
                  </div><!-- display result JSON end ======================= -->
                </div><!-- accordion-body end ============================== -->
              </div><!-- accordion-collapse end ============================ -->
            </div><!-- accordion-item end ================================== -->

          </div><!-- accordion end ========================================= -->
        </div><!-- col-12 col-sm-10 mx-auto end ============================ -->
      </div><!-- row end ====================================================-->
    </div><!-- container end =============================================== -->
  </div><!-- 100% vh end==================================================== -->
  <footer id="footer" style="height: 50px;">
    <!-- load by src='js/nav_footer.js'  -->
  </footer>
</body>
<script>
  var isNode = false;
</script>
<script src='js/3rdparty/jquery-3.5.1.min.js'></script>
<script src='js/3rdparty/bootstrap.bundle.min.js' ></script>
<script src="js/3rdparty/easy.qrcode.js"  charset="utf-8"></script>
<script src="js/3rdparty/crypto-js.min.js"></script>
<script src="js/3rdparty/jsbn.js"></script>
<script src="js/3rdparty/jsbn2.js"></script>
<script src="js/3rdparty/extensions.js"></script>
<script src="js/3rdparty/converters.js"></script>
<script src="js/3rdparty/nrs.util.js"></script>
<script src="js/3rdparty/jquery.table2excel.js"></script>
<script src='js/scripts-cc14en.js' ></script>
<script src='js/nav_footer.js' ></script>
<script src='data/myAddressBook.json' ></script>
<script src='data/myAssetBook.json' ></script>
<script>
  var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
  var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {return new bootstrap.Tooltip(tooltipTriggerEl)});
  $("#navbarSupportedContent").html(navbarSupportedContentHtml);
  $("#footer").html(footerHtml);
  $("input[type='text']").on("click", function () {$(this).select();});
</script>
</html>
